package com.liwy3.mybaits.domain;

import org.mybatis.spring.SqlSessionTemplate;

import javax.annotation.Resource;
import java.lang.reflect.ParameterizedType;
import java.util.List;

/**
 * Copyright © 元气森林（北京）食品科技集团有限公司. All rights reserved.
 *
 * @Description:
 * @author: Crazy4J
 * @date: 2021年12月29日 17:25
 * @version: V1.0
 */
public abstract class BaseService<T> {

    protected Class<T> entityClass;
    @Resource
    private SqlSessionTemplate sqlSessionTemplate;

    public BaseService() {
        entityClass = (Class<T>) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
    }

    public List<T> list(Object condition) {
        return sqlSessionTemplate.selectList(entityClass.getName() + ".list", condition);
    }

    public void update(Object condition) {
         sqlSessionTemplate.update(entityClass.getName() + ".update", condition);
    }

}
